package testes;

import static org.junit.Assert.*;

import org.junit.Test;

import classes.Endereco;
import classes.Funcionario;
import classes.Pessoa;
import org.junit.*;

public class TestFuncionario {
	
	private Funcionario funcionario;
	private Pessoa pessoa;
	private Endereco endereco;
	
	
	@Before
	public void criaFuncionario() throws Exception {
		endereco = new Endereco("Samara Lins", 1234, "Palmeira", "Campina Grande", "Paraiba");
		pessoa = new Pessoa("Camila Farias", 22, "Feminino", "098.323.334-09", "3.454.544", endereco);
		funcionario = new Funcionario( pessoa, 8732, 2.555, "Vendedor");
	}
	
	
	@Test
	public void testaErrosNoConstrutor() throws Exception {
		
		try {
			new Funcionario( pessoa , -1 , 2.000, "Secretaria");
		}
		catch( Exception e ){
			Assert.assertEquals("Mensagem Errada!", "Matricula invalida!" , e.getMessage() );
		}
		
		try {
			new Funcionario( pessoa , 8934 , 0 , "Secretaria");
		}
		catch( Exception e ){
			Assert.assertEquals("Mensagem Errada!", "Salario invalido!" , e.getMessage() );
		}

		try {
			new Funcionario( pessoa , 8934 , 12320 , "");
		}
		catch( Exception e ){
			Assert.assertEquals("Mensagem Errada!", "Cargo invalido!" , e.getMessage() );
		}
		
	}
	
	
	@Test
	public void testFuncionario() {
		Assert.assertEquals( "Nome errado!", "Camila Farias", funcionario.getNome() );
		Assert.assertTrue( funcionario.getSalario() == 2.555 );
		Assert.assertTrue( funcionario.getMatricula() == 8732 );
	}
	
		
}
